Field
This invention relates to the management of data in a storage system having both volatile and non-volatile caches. It relates more specifically to the methods and algorithms used in managing multiple levels of caches for improving the performance of storage systems that make use of Flash devices as higher-level cache.
Description of Related Art
Typical storage systems comprising multiple storage devices usually assign a dedicated rotational or solid state drive as cache to a larger number of data drives. In such systems, the management of the drive cache is done by the host and the overhead brought about by this contributes to degradation of the caching performance of the storage system. Prior approaches to improving the caching performance focus on the cache replacement policy being used. The most common replacement policy or approach to selecting victim data in a cache is the Least Recently Used (LRU) algorithm. Other solutions consider the frequency of access to the cached data, replacing less frequently used data first. Still other solutions keep track of the number of times the data has been written while in cache so that it is only flushed to the media once it reaches a certain write threshold. Others even separate read cache from write cache offering the possibility for parallel read and write operations.
The use of non-volatile storage as cache has also been described in prior art, declaring that response time for such storage systems approaches that of a solid state storage rather than a mechanical drive. However, prior solutions that made use of non-volatile memory as cache did not take advantage of the architecture of the non-volatile memories that could have further increased the caching performance of the system. The storage system does not make any distinction between a rotational drive and a solid-state drive cache thus failing to recognize possible improvements that can be brought about by the architecture of the solid-state drive. Accordingly, there is a need for a cache management method for hybrid storage system that takes advantage of the characteristic of flash memory and the architecture of the solid-state drive.